import {
  request
} from '../../request/index'
import runtime from '../../lib/runtime'

// pages/category/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    //左侧菜单数据
    leftMenuList: [],
    //右侧商品数据
    rightContent: [],
    //被点击左边的菜单
    currentIndex: 0,
    //左边菜单被点击后右边的内容重新回到顶部
    scrollTop: 0

  },

  //接口返回的数据
  Cates: [],

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //获取本地缓存数据
    const Cates = wx.getStorageSync('cates')

    //判断本地缓存是否有数据
    if (!Cates) {
      //如果没有缓存数据就发送请求
      this.getCateList()
    } else {
      //查看缓存在本地的数据是否过期
      if (Date.now() - Cates.time > 1000 * 60 * 5) {
        //重新发送请求
        this.getCateList()
      } else {
        this.Cates = Cates.data
        let leftMenuList = this.Cates.map(item => item.cat_name)
        let rightContent = this.Cates[0].children
        this.setData({
          leftMenuList,
          rightContent
        })
      }
    }
  },

  getCateList() {
    request({
        url: '/categories'
      })
    .then(val => {
      this.Cates = val.data.message

      //把请求到的数据存储到本地缓存
      wx.setStorageSync('cates', {
        time: Date.now(),
        data: this.Cates
      })

      let leftMenuList = this.Cates.map(item => item.cat_name)
      let rightContent = this.Cates[0].children
      this.setData({
        leftMenuList,
        rightContent
      })
    })
  },

  //左侧菜单事件
  handleItemTap(e) {
    let {
      item
    } = e.currentTarget.dataset
    let rightContent = this.Cates[item].children
    this.setData({
      currentIndex: item,
      rightContent,
      scrollTop: 0
    })
  },



  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})